Method of determining an optimal route

ABSTRACT

Disclosed herein is a method of determining an optimal route for a vessel based on vessel traffic data. The method comprises receiving vessel traffic data relating to the movement of each of a plurality of vessels in a geographical region and defining sub-regions within the geographical region in which the vessel traffic data has similar characteristics. The method also comprises determining an optimal route for a vessel between two geographical points using a representation of the geographical region. The representation comprises nodes, and each node is associated with a respective defined sub-region.

CROSS REFERENCE TO RELATED APPLICATIONS

This patent application is a continuation of U.S. application Ser. No.16/213,977, filed Dec. 7, 2018, which claims priority to GB ApplicationNo. 1720412.4, filed Dec. 7, 2017, the contents of which are herebyincorporated by reference in their entireties for all intents andpurposes.

BACKGROUND OF THE INVENTION

This disclosure relates to a method of determining an optimal route, andin particular to determining an optimal route which may be traversed bya vessel.

Satellite navigation systems are widely used, in particular in theauto-motive field. A driver may enter a destination into his or her‘satnav’ system, which is then able to determine an optimal routebetween the driver's current location and a desired destination. It isadvantageous not only to calculate the most efficient possible route,but also to calculate the route and respond to the driver's query asquickly as possible.

However, a number of difficulties present themselves when attempting todetermine an optimal route for a vessel. The skilled person willappreciate that a graph having nodes connected by edges, each edgehaving an associated weight or cost, is a pre-requisite for mostshortest-route calculation algorithms. While roads and junctions providestructure which may form the basis of such a graph when determining anoptimal route for a car, such structure is not available whendetermining an optimal route for a vessel.

The present invention seeks to address this and other disadvantagesencountered in the prior art by providing a method of generating anoptimal route for a vessel based on vessel traffic data, as well as agraph suitable for use in such a method.

SUMMARY OF THE INVENTION

According to an aspect, there is provided a method of determining anoptimal route for a vessel based on vessel traffic data, the methodcomprising receiving vessel traffic data relating to the movement ofeach of a plurality of vessels in a geographical region; definingsub-regions within the geographical region in which the vessel trafficdata has similar characteristics; and determining an optimal route for avessel between two geographical points using a representation of thegeographical region, the representation comprising nodes, each nodebeing associated with a respective defined sub-region.

The method may further comprise producing the representation of thegeographical region.

The method may further comprise assigning nodes to the representation,each node being associated with a respective defined sub-region.

The method may further comprise joining neighbouring nodes in therepresentation with edges based on vessel journeys identified using thevessel traffic data.

The method may further comprise joining a first and a second node with aplurality of edges, each respective edge of the plurality of edges beingcreated using different respective vessel journeys identified using thevessel traffic data, the different respective vessel journeys beingassociated with vessels having different characteristics.

The nodes may be connected by edges each having at least one associatedweight, the weights being based on characteristics of vessel journeysidentified using the vessel traffic data.

The at least one weight may be representative of at least one of theaverage time taken to travel along the edge and the average amount offuel required to travel along the edge; the average amount of monetarycost required to travel along the edge; and the number of journeysidentified along the edge in the vessel traffic data.

The weights may be blended weights, wherein each blended weight is basedon at least two respective types of vessel journey identified in thevessel traffic data, the types of vessel journey being associated withdifferent vessel characteristics.

The optimal route may be determined using a shortest-path routingalgorithm.

Defining sub-regions within the geographical region in which the vesseltraffic data has similar characteristics may comprises identifyinggeographical regions in which variation within the vessel traffic datais below a variation threshold value.

The method may further comprise iteratively considering each of a numberof proposed sub-regions and, for each proposed sub-region, determiningwhether the variation of vessel traffic data associated with theproposed sub-region is above a threshold variation value and, if it is,splitting the proposed sub-region into a plurality of smaller proposedsub-regions.

The sub-regions in which the vessel traffic data has similarcharacteristics may be defined as those proposed sub-regions in whichvariation of vessel traffic data is not above the threshold variationvalue.

The vessel traffic data may comprise data relating to the speeds of eachof the plurality of vessels.

According to an aspect, there is provided a method of producing arepresentation of a geographical region for use in determining, based onvessel traffic data, an optimal route for a vessel between twogeographical points. The method comprises receiving vessel traffic datarelating to the movement of each of a plurality of vessels in ageographical region; defining sub-regions within the geographical regionin which the vessel traffic data has similar characteristics; andproducing the representation of the geographical region, therepresentation comprising nodes, each node being associated with arespective defined sub-region.

The method of producing a representation may further comprise any of thefeatures discussed above or elsewhere herein in relation to the methodof determining an optimal route.

According to an aspect, there is provided a computer readable mediumcomprising computer-executable instructions which, when executed by aprocessor, cause the processor to perform the disclosed methods.

BRIEF DESCRIPTION OF THE DRAWINGS

Specific embodiments are now described, by way of example only, withreference to the drawings, in which:

FIG. 1 depicts a database containing vessel traffic data;

FIG. 2 depicts shipping routes which have been identified using vesseltraffic data;

FIG. 3 is a flowchart depicting a suitable method for producing a graphof a geographical region and/or of determining an optimal route for avessel;

FIG. 4 depicts a geographical region divided into sub-regions;

FIG. 5 is a flowchart depicting a suitable method for dividing ageographical region into sub-regions;

FIG. 6 depicts assigning nodes to identified sub-regions.

DETAILED DESCRIPTION OF THE INVENTION

A number of shortest path routing algorithms are available, which caneach be used to determine am optimal path between two geographicalpoints. These algorithms typically treat the two geographical points asnodes on a graph. The graph may be formed of a number of nodes, i.e.other geographical points, which are joined by edges. Each edge has anassociated ‘cost’ or ‘weight’. For example, when calculating drivingdirections, junctions may form the nodes on the graph. Roads whichconnect these junctions may form the edges. Each road has an associatedweight, which may be, for example, the time typically taken to drivealong the road between the two junctions. An algorithm can then beemployed to determine the path between the given nodes which minimisesthe accumulated weight or cost.

Determining an optimal route using these shortest path routingalgorithms typically involves two main stages: a pre-processing stage,in which the graph is produced, and a calculation stage, in which thegraph is queried, i.e. in which the algorithm determines the routebetween two given nodes on the graph which minimises the cost or weight.While the algorithms are typically named ‘shortest-path’ routingalgorithms, these algorithms actually determine the route between nodeson a graph which minimises the cost or weight of the edges which formthe route.

The pre-processing stage in particular is difficult when attempting toproduce a graph which can be used to determine an optimal route for avessel, e.g. a boat or ship. Unlike with road traffic, it is notpossible to use road junctions and therefore the question of whichgeographical points should be represented by nodes on the graph is madesignificantly more difficult. Ships can travel in any given directionand at any chosen speed across a navigable body of water and thereforeit has also proven difficult to decide how the nodes should beconnected, and what weight should be assigned to the connections. Theapproach disclosed herein uses data obtained from real vessels, and inparticular data which describes real shipping traffic, in order toproduce a graph which is suitable for use when determining an optimalroute for a vessel.

Each vessel above a certain gross tonnage is required to be fitted witha tracking system, which broadcasts information relating to the identityand characteristics of the particular vessel as well as data relating toits current location and movement. Such data may include location,orientation, course, and the speed of the vessel. The tracking system iscalled the automatic identification system (AIS). Typically, AISmessages are automatically broadcast at regular time intervals via atransmitter on the ship. The time interval is typically on the order ofa few seconds. The broadcast AIS messages allow the location and speedof vessels, among other factors, to be tracked and monitored.

Information typically broadcast in an AIS message includes the MMSInumber (i.e. a unique number which identifies the vessel); navigationstatus (e.g. at anchor, under way using engine, etc.) rate of turn (e.g.right or left, 0 to 720 degrees per minute); speed over ground(typically given in knots); location data (e.g. longitude and latitude);position accuracy; course over ground (relative to true north); trueheading; data relating to fuel usage (e.g. current amount of fuel,current fuel usage rate); and a time stamp. The AIS message contains thelocation at which the message was broadcast. The location is storedusing a geographic co-ordinate system. Typically, a latitude and alongitude is associated with each AIS message.

Data from various AIS messages may be stored in a database. In apreferred embodiment, a further condensed database is producedcontaining vessel traffic data to be used in the methods describedherein. Such a condensed database may take the form shown in FIG. 1.

The database shown in FIG. 1 contains information taken from AISmessages. Each row is associated with a single AIS message. The databasecontains information relating to the identity of the AIS message, asshown at 102. The column is titled MessageId. The database also storesthe AIS message timestamp at 104, i.e. in the column titled Received.The database also stores information which allows the ship whichbroadcast the AIS message to be identified, at 106. This column istitled MMSIID. It will be appreciated that the database contains aplurality of messages which were broadcast by the same vessel but atdifferent time. The database also stores information relating to thenavigation status of the vessel at 108. The column is titledNavigationstatus. The Navigationstatus values of an AIS messages maytake one of several values, including 0 (under way using engine); 1 (atanchor) 2 (not under command) etc. The database also contains otherinformation relating to the movement of the vessel, including the rateof turn, 110, and the speed over ground, 112. The database also containslocation information which gives the location of the vessel at the timethe AIS message was broadcast. In the database shown in FIG. 1, thelocation information takes the form of a longitude value, 114, and alatitude value, 116.

FIG. 2 shows a map of the world. Overlaid on the map are lines whichdepict shipping routes identified by analysing AIS data. As will beappreciated, a shipping route can be plotted by joining the locations atwhich a particular vessel emitted an AIS message.

FIG. 3 shows a flowchart of a method according to the presentdisclosure. At 302, data associated with vessel traffic in ageographical region is received. The vessel traffic data containsinformation relating to the movement of a plurality of vessels. Theplurality of vessels may include a range of different types of vessels,for example tankers, cruise ships, fishing vessels, cargo ships, etc. Ina preferred embodiment, the vessel traffic data is AIS data broadcastfrom a number of vessels over a particular time period. The AIS data maybe a number of AIS messages broadcast by a plurality of vessels. Thetime period may be, for example, two weeks or a month. The AIS messagesare broadcast by each vessel, received by a receiver, and are stored andcollated in, and hence are received at, a database.

In another embodiment, the data is not taken over a single time period.Instead, data taken over a number of time periods is collated. Forexample, historical data associated with a particular vessel may becombined with data taken over a more recent time period associated withanother vessel.

At 304, sub-regions within the geographical region are defined using thevessel traffic data. The sub-regions are areas of the geographicalregion in which the vessel traffic data exhibits sufficiently similarcharacteristics. It will be appreciated that altering the size of aproposed sub-region, i.e. adjusting its boundary within the geographicalregion, changes the number of AIS messages which were broadcast fromwithin the boundary. In other words, changing the size of a proposedsub-region changes the amount of vessel traffic data associated with theproposed sub-region. The degree of variation within the vessel trafficdata associated with a possible or proposed sub-region, for example thedegree of variation within the vessel speeds, may be used to determinewhether the proposed sub-region should be defined as a sub-region. Inother words, a degree of variation within the vessel traffic data isused to define the sub-regions.

In some implementations, sub-regions which share suitably similarcharacteristics are identified, and defined, by looking at the amount ofvariation present in the data associated with the sub-region. Suitablealgorithms can take either a divisive or an agglomerative approach. Inother words, suitably sized sub-regions can be found starting fromeither large sub-regions which become iteratively smaller, or startingfrom small sub-regions which become iteratively larger. Both processesstop iteratively altering the size of a proposed sub-region when a sizeof sub-region has been found for which the vessel traffic dataassociated with the sub-region displays a suitable level of variation.

Taking a divisive approach, it is possible to start with a small numberof large proposed sub-regions. The initially proposed sub-regions may bearbitrarily sized and should cover the entire geographical region ofinterest. For example, in an implementation in which the geographicalregion of interest is the entire globe, it has been found that analgorithm which starts with two proposed sub-regions, representing theeastern and western hemisphere, produces good results.

The vessel traffic data of each proposed sub-region is then analysed. Insome implementations, the speed value of each AIS message which wasbroadcast from the proposed sub-region is considered. In other words,considering a particular proposed sub-region, the vessel speedsassociated with the AIS messages which were broadcast from locationswithin the boundary of the particular proposed sub-region are identifiedwithin the dataset. The variation in the vessel speeds associated withthese AIS messages is then determined and considered. There aredifferent metrics which may be used to quantify the variance of a set ofdata points, for example the variance or the standard deviation. If thevariation of vessel speed values within a particular proposed sub-regionis above a threshold variation value, then the vessel speeds are deemedto not share similar characteristics. In other words, the vessel trafficdata associated with the proposed sub-region is deemed to be notsufficiently similar. The proposed sub-region is then divided into aplurality of smaller sub-regions, which are in turn also consideredusing the same method as the ‘parent’ sub-region to determine if thevariation of data within each of the smaller sub-regions meets thethreshold. If the variation is above a threshold in any proposedsub-region, the sub-region is divided, or ‘split’, into smallersub-regions. If the variation in a particular proposed sub-region is notabove a threshold variation value, then the particular proposedsub-region is not split. In this way, sub-regions within thegeographical region in which vessel speed values are similar to oneanother are defined. A flowchart showing a suitable method for definingsuch sub-regions is shown in FIG. 5, and is described in further detailbelow.

Once suitable sub-regions of the geographical region have been definedusing the vessel traffic data, it is possible to begin to produce agraph which represents the geographical region.

At 306, nodes are assigned to a representation of the geographicalregion. In other words, a graph is created having nodes which areassociated with the defined sub-regions. The nodes are tagged withinformation associated with the location of the defined geographicalsub-regions. The graph is assigned a respective node for each definedsub-region. The nodes are associated with the centre of each definedsub-region. A graph/representation of the geographical region is formed,with the nodes being associated with the centre of the sub-regions. Inimplementations in which each sub-region is a square or a rectangle, thecentre of the sub-region may be simply defined as the point at which thediagonal lines which join the corners of the rectangle meet. Thiscentre-point can be simply calculated using the co-ordinates of therectangle vertices and the calculation will not be discussed in furtherdetail. Alternatively, the centre of the sub-region may be defined asthe centroid of each of the AIS locations within the sub-region.

More generally, this step can be described as producing a graph havingnodes, each of which is a representation of, in other words which isassociated with, the centre of a defined sub-region. Each node isassociated with and tagged with a location, for example a latitude valueand a longitude value.

At 308, the nodes are joined with edges using the vessel traffic data,e.g. the AIS data. Using the AIS data, real vessel journeys between thenodes are identified, and these journeys are used to determine whichnodes should be joined by an edge.

Vessels are identifiable in the database using the vessel's MMSI numberor other identification data broadcast by the vessel. It is thereforepossible to identify a particular journey between two adjacentsub-regions using the AIS data. A group of AIS messages associated witha particular vessel's journey between two defined sub-regions isidentified and analysed. In other words, the AIS data can be used toidentify groups of AIS messages which are associated with a realvessel's travel between sub-regions. When a journey between twoadjacent, or neighbouring, sub-regions is identified, the nodes on thegraph are linked by an edge.

In an example, a vessel moves between the port of Southampton, UnitedKingdom and the port of New York, United States. During this voyage, thevessel regularly broadcasts AIS messages, which are received by areceiver and are stored in a database. The AIS messages associated withthe vessel's journey between Southampton and New York can be readilyidentified using the emitted AIS messages. On its journey, the vesselpasses through geographical areas which are later associated with afirst and a second defined sub-region. The first and the secondsub-region are adjacent to one another and have centre-points associatedwith a first and a second node respectively. When analysis of the vesseltraffic data shows that the vessel has passed through the two adjacentsub-regions, the respective nodes of the two sub-regions are joined byan edge on the graph. In other words, the edge is created between thetwo nodes. The analysis is continued across all journeys represented inthe dataset. When the analysis identifies a journey which passes throughadjacent sub-regions, the nodes associated with the adjacent sub-regionsare linked, or connected, by an edge.

At 310, each edge is assigned at least one weight. A weight may also bereferred to as a ‘cost’. The weights for the edges are determined basedon characteristics of the actual journeys the edges represent.Considering the example detailed above in which a particular vesselpasses through a first and a second sub-region and the associated firstand second nodes are thus joined by an edge, it is possible to assign aweight to this edge using some or all of the AIS messages broadcast bythe particular vessel while it travelled from the first sub-region tothe second sub-region.

In a preferred embodiment, all journeys between the first and secondsub-region identifiable within the vessel traffic data are identified. Aplurality of groups of AIS messages are thus identified, each groupbeing associated with a particular vessel's particular journey betweenthe first and second sub-region. Each group of AIS messages isassociated with a different journey between the first and secondsub-region. It is feasible that the same vessel may have made multiplejourneys through the geographical regions associated with the first andsecond sub-regions over the time period of the dataset, and thereforethe identified journeys may include journeys taken by different vesselsas well as different journeys taken by the same vessel.

Depending on the vessel traffic data, vessel journeys associated with avariety of vessel types may be identified. The purpose of identifying aplurality of groups of AIS messages, each group being associated with aparticular journey identifiable within the data, is that in someembodiments a weight can be calculated for an edge based only on arelevant subset of all the identified journeys along the edge. Forexample, all the identified journeys may be split into subsets accordingto vessel characteristics. It is then possible to calculate differentweights for each edge based on different respective vesselcharacteristics. This allows a user to determine an optimal route forhis cargo vessel based on vessel traffic data taken from other, similarcargo vessels. This will be discussed in further detail later.

Once groups of AIS messages have been identified, i.e. once differentvessel journeys between the first and second sub-region have beenidentified, an average vessel speed for travel between the twosub-regions is determined. In other words, an average is taken of thespeed values associated with each AIS message which was broadcast by avessel travelling between the first and second sub-region. This givesthe average vessel speed for all the journeys which occurred between thefirst and second sub-region.

The nodes are associated with the centre-points of each sub-region, andtherefore the nodes are associated with a known, and precise,geographical location. Therefore, the distance between the first andsecond node may be calculated. Because the distance between the firstand second node is known, once an average vessel speed for all thejourneys between the first and second sub-regions has been calculated itis possible to determine a value representative of the average timetaken to travel between the two nodes by dividing the internode distanceby the average speed of travel between the two nodes.

This process can be carried out for all the edges to determine a valuerepresentative of the time taken to travel along each edge. These timevalues, or values based on these time values, can be used as weights forthe edges which link the neighbouring nodes.

Instead of identifying all the vessel journeys between the first andsecond sub-region, in some implementations only a sub-set of all thesejourneys is identified and incorporated into subsequent calculations.For example, only a sufficient number of journeys to ensure statisticalsignificance is considered. For example, once one thousand journeysbetween two sub-regions have been identified, the process may stopidentifying journeys since the journeys already identified may be enoughto ensure the determined weights are statistically significant. Asuitable threshold for the number of journeys required may be determinedusing known statistical methods or by trial and error.

It will be appreciated that other weights may be assigned to the edges,either instead of, or in addition to, the average time taken to travelbetween the nodes. In some implementations, edges may be assignedmultiple weights. A user may then decide which weight the algorithmshould consider when determining the optimal route. In a simple example,weights may be assigned to the nodes based on the distance between thenodes. Such a graph will allow the determination of the shortest route,in terms of geographical distance, between two geographical points.

Weights may be assigned using any type of data present in an AISmessage. For example, using the AIS data it is possible to determine theaverage fuel required in order to travel between the nodes. The fuelrequired to travel between two nodes, on average, can be calculatedusing the method outlined above, e.g. by considering the identified AISmessages which are associated with journeys between the two associatedsub-regions, determining the amount of fuel used during each identifiedjourney, and taking an average of all these fuel usage values. A graphin which the edges are weighted by fuel usage can be used to determinethe route between two geographical points which requires the leastamount of fuel to traverse. Using fuel price data, it is also possibleto use this average fuel consumption value to assign a weight associatedwith the monetary cost of travelling along the edge.

It will be appreciated that different types of vessel consume fuel atdifferent rates, and indeed different vessel types use different fuels.This can be addressed by incorporating vessel characteristics into theproduction of the graph. As will be discussed later, it is possible todivide the identified journeys according to vessel characteristics, e.g.vessel size, and these journeys may be analysed separately. Accordingly,different edges and/or different weights may be incorporated into thegraph according to the vessel characteristics identifiable within thedata.

Similarly, as it is possible to determine the number of journeys whichtook place between any two sub-regions within the time period of thedata, it is possible to assign a weight based on this number to the edgelinking the sub-regions. This weight is representative of how heavy thevessel traffic is between two nodes. If travel between certain nodes ismore common or popular, it suggests among other things that travelbetween the associated geographical areas is safe. The amount of trafficbetween two nodes can be represented, for example, in number of journeysper unit time. Thus, weights may be assigned to edges based on thevessel traffic between nodes, and the resulting graph may be used toproduce safe routes.

The direction of the identified journeys may also be taken into account.For example, journeys between neighbouring sub-regions can be split intothose journeys which passed from the first to the second sub-region andthose journeys which passed from the second to the first sub-region.These groups of journeys can be analysed separately, leading to two‘directional’ weights being assigned to each edge. The relevant weightis then used depending on the direction of a query to the graph.

In some implementations, steps 308 and 310 may be combined. In otherwords, weights may be assigned to edges as the edges are identified,rather than in separate steps.

At 312, a graph of the geographical region is produced. The graph isproduced via the steps defined in 306, 308 and 310. The graph comprisesa number of nodes connected by edges, each of the edges having anassociated weight. In its simplest form, the graph comprises at leasttwo nodes joined by at least one edge. As discussed above, such a graphis required by most shortest-route plotting algorithms in order todetermine an optimal route between two nodes on the graph. Each node isassociated with a respective sub-region.

At 314, an optimal route between two geographical points is determined.In other words, the graph produced at 312 is used by an algorithm todetermine the most efficient route of traversing the graph, whichminimises the accrued weight/cost.

Once the graph has been produced using the vessel traffic data, thefinal graph may be queried by different entities. In a preferredembodiment, access to the graph is provided via a suitable userinterface on a website or web application. The user inputs criteria,including the geographical points between which they would like anoptimal route to be determined, and an optimal route is determined usingthe data inputted by the user. As is discussed elsewhere herein, theuser may input data relating to his or her type of vessel and relatingto the nature of the route which should be calculated. The calculationof the optimal route may be performed at the server side, e.g. at a webserver, or the client side, e.g. the calculation may be performed by theuser's web browser.

It will be appreciated by the skilled person that a number of algorithmsmay be used in order to determine the shortest path/optimal route. Asimple example of a suitable algorithm is Dijkstra's algorithm. In apreferred embodiment, contraction hierarchies techniques may be used inorder to increase the speed with which a query of the graph may becalculated. In order for these algorithms to be used, the graph mayundergo several additional pre-processing steps in order to reduce thecalculation speed in response to a user's query. The person skilled inthe art will be aware of, and be able to carry out, the requisitepre-processing steps depending on the shortest-route algorithm chosen.

The nature of the determined optimal route can be adjusted by the user,i.e. the person who queries the graph. For example, the user maydetermine that they would like to see the optimal route between twogeographical points in terms of the monetary cost between the twopoints. In which case, the user inputs this selection via a suitableuser interface, and the graph may be adjusted such that monetary costweights are used. The user can similarly decide to use any of theweights which have been assigned to the edges during the pre-processingstage, or a blend of these weights as discussed below.

FIG. 4 depicts a geographical region. The geographical region includesthe UK and part of the North Atlantic Ocean. Geographical sub-regions(402 a, 402 b) have been defined within the geographical region. Forincreased clarity, not all the sub-regions which would be defined withinthe geographical area are shown in FIG. 4. Vessel traffic data relatingto the movement of a plurality of vessels in the North Atlantic Oceanhas been used to define the sub-regions (402 a, 402 b). The definedsub-regions in FIG. 4 are regions in which the vessel traffic data hassimilar characteristics. As will be appreciated from FIG. 4, the size ofthe sub-regions may vary. The boundaries, and hence the size, of thesub-regions (402 a, 402 b) depicted in FIG. 4 may be defined using themethod depicted in the flowchart of FIG. 5. The sub-regions (402 a, 402b) may also be defined using similar or equivalent methods to thatdepicted in FIG. 5. The sub-regions (402 a, 402 b) depicted in FIG. 4are rectangular, and each have an associated middle-point/centre-point(404 a, 404 b). In FIG. 4, the sub-regions are smaller nearer the coast,which suggests that the vessel movement data associated with vesselstravelling nearer the coast shows greater variance than the vesselmovement data associated with vessels travelling in the open ocean.

FIG. 5 is a flowchart showing a possible method of defining, within thegeographical region, sub-regions in which the vessel traffic data hassimilar characteristics.

At 500, the process starts with N proposed sub-regions, each labelled by‘i’. The size and coverage of the initially proposed sub-regions may bearbitrarily chosen. In a preferred embodiment, the geographical regionof interest is the globe/the Earth's surface, and the algorithm beginswith two proposed sub-regions (i.e. N=2). The two initially proposedsub-regions cover all of the Earth's surface, are rectangular, androughly represent the Eastern and the Western hemisphere respectively.

At 502, i is set equal to one. This sets up the algorithm to considereach of the proposed sub-regions in turn.

At 504, vessel traffic data associated with the ‘i-th’ sub-region isconsidered. Each AIS message which was broadcast from a location withinthe boundary of the ‘i-th’ proposed sub-region is associated with the‘i-th’ sub-region. In some implementations, every AIS message associatedwith the ‘i-th’ sub-region is considered. In some implementations, onlya statistically significant sub-set of the AIS messages associated withthe ‘i-th’ sub-region is considered.

At 506, it is determined whether the variation of the data associatedwith the ‘i-th’ sub-region is above a threshold variation value. Asdiscussed above, the variation may be quantified using the variance orthe standard deviation of the data. In a preferred embodiment, thevariance within the vessel speed data is determined. In someimplementations, the variance of a set of data points is calculated, theset of data points being the vessel speeds from each AIS messageassociated with the ‘i-th’ sub-region, and the calculated variance iscompared to a threshold variance value.

Rather than, or in addition to, using the vessel speeds, other AIS datacan be taken into account at this stage. For example, the variation inany data present in a typical AIS message can be considered and comparedto a threshold variation value. For example, sub-regions may be definedbased on variation in the ‘current fuel usage’ of the AIS messages.Using this threshold, sub-regions would be defined based on similaritiesin fuel usage across the vessels travelling through the geographicalregion. Multiple variation thresholds can be considered, for example athreshold for vessel speed variation may first be considered, and adifferent threshold for ‘current fuel usage rate’ may also beconsidered.

The threshold variation value may be set according to a desiredperformance of the final graph. The lower the threshold, the moresub-regions will be created, and the higher the resolution of theresulting graph. However, such a high resolution graph will give aslower query calculation speed. There is therefore a ‘trade-off’ betweenaccuracy of route calculation and query speed which can be adjusted byaltering the variation threshold value.

If the variation is above the threshold value, then the processcontinues to 508. If the variation of data within the ‘i-th’ sub-regionmeets the threshold requirements, e.g. if the variation is equal to orbelow the variation threshold, the process continue to 510.

At 508, the ‘i-th’ proposed sub-region is divided into a plurality ofsmaller proposed sub-regions. This can be done in a number of ways, forexample by dividing into an arbitrarily chosen number of smallersub-regions. In a preferred embodiment in which the proposed sub-regionsare rectangular, the ‘i-th’ proposed sub-region is split into foursmaller, equally sized proposed sub-regions. In other words, the ‘i-th’sub-region is divided into four quadrants.

At 510, the process determines whether i=N. This step determines whetherall the proposed sub-regions of the N sub-regions have been processedyet. If i does not equal N, the process continues to 512 and i isincrementally increased, for example by 1. Once all the proposedsub-regions have been processed, I will equal N and the processcontinues to 514.

At 514, it is determined whether any sub-regions were divided whenprogressing from i=1 to i=N. This step can also be thought of asdetermining whether any new sub-regions were created when progressingfrom i=1 to i=N. If new sub-regions were created, the process continuesto 516.

At 516, a new set of proposed sub-regions is formed, which is formed ofeach of the newly created sub-regions. The value of ‘N’ is set as equalto the total number of newly created sub-regions, and the new set ofsub-regions is labelled using i. The process then begins again with thenew set of proposed sub-regions.

The process continues until every proposed sub-region passes the test at506, i.e. until it is possible to define a set of sub-regions in whichdata variation in each sub-region is below a threshold value. Thus, aset of sub-regions are defined within the geographical region in whichthe vessel traffic data has similar characteristics.

Given this disclosure, the skilled person would be able to produce analgorithm capable of carrying out the process detailed in FIG. 5. Theskilled person will also recognise that other algorithms may be used todefine suitable sub-regions within which the vessel traffic data hassimilar characteristics. For example, an algorithm may take anagglomerative rather than a divisive approach. Such an algorithm wouldstart with a large number of small proposed sub-regions. The possibilityof combining the nearest sub-region neighbours would be explored. Suchan algorithm would iteratively combine neighbouring proposed sub-regionsand, if the variation within the data associated with the neighbouringproposed sub-regions is below a variation threshold, the algorithmcombines the sub-regions. The process continues until a combination ofproposed sub-regions would result in a sub-region having associated datawith a variation above the threshold, at which point the algorithm doesnot combine the neighbouring sub-regions. This process continuesiteratively until the largest possible sub-regions are defined in whichthe vessel traffic data has a variation below the threshold value.

FIG. 6 depicts assigning nodes to identified sub-regions. FIG. 6 shows adefined sub-region 602 overlaid on a map showing the relevant part ofthe geographical region. The geographical region contains a river 610.The sub-region 602 is rectangular and has a centre-point 604. However,it will be appreciated that the centre-point 604 is located on land,i.e. at a geographical point which is not navigable by a vessel.

In some embodiments, steps are taken to ensure none of the nodes areassociated with a location on land, or any other location which is knownto be not navigable by a vessel. These additional steps may form part ofstep 306 of the flowchart of FIG. 3. The centre-point 604 of asub-region 602 may be associated with a location on land when, forexample, the sub-region 602 contains both a navigable river 610 or canaland the land which surrounds it. To prevent a node being associated witha non-navigable geographical location, the sub-region centre-pointlocations are compared with the locations of known land masses beforethe nodes are assigned. If the sub-region centre-point falls on land,the node is assigned to a navigable body of water which is nearest tothe sub-region centre. This ensures smooth and efficient routes may bedetermined even for geographical regions which contain canals.

This ‘snapping’ of nodes to the closest navigable body of water isdepicted in FIG. 6. Consider sub-region 602. Sub-region 602 has beendefined using AIS messages broadcast by vessels travelling along theregion of the river incorporated inside sub-region 602. Rather thanassigning a node on the graph to a location associated with centre-point604, the node 606 is instead associated with the closest known navigablepoint of water to centre-point 604.

It will be understood that the above description of specificimplementations and arrangements is by way of example only and is notintended to limit the scope of the present disclosure. Manymodifications of the described embodiments, some of which are nowdescribed, are envisaged and intended to be within the scope of thepresent disclosure.

With reference to step 308 of FIG. 3, while considering the nearestneighbouring sub-regions has been primarily discussed herein, it will beappreciated that in some implementations it is not only the nearestneighbouring nodes which are considered when joining nodes with edges.The neighbours of each of the neighbouring nodes may also be considered.In these implementations, more journeys are identified, including thosejourneys which traverse through sub-regions which are not necessarilycontiguous. Such an approach leads to a graph having much moreinformation and many more edges which link the nodes.

In some implementations, additional steps are taken at steps 308 and/or310 of FIG. 3, or in between these steps. For example, following step308 as described above, it is possible that a discontinuous graph hasbeen formed. In other words, a graph has been formed in which it is notpossible to traverse from each node to every other node. If isolatedregions of the graph are formed after step 308, such isolated areas ofthe graph may be identified and joined together to ensure a continuousnetwork within the geographical region. For example, isolated regionsmay form in internal canal systems, and/or in navigable bodies of waterwhich are inland such as a lake. These isolated regions are formedbecause no vessel journeys have been identified between the geographicalregions they represent.

In an example, twenty different isolated regions of the graph may bepresent following step 308. These isolated regions are identified, andthe nearest nodes between adjacent isolated regions are identified.These nodes are joined, but with a relatively high weight edge. Thishigh weight edge represents the possibility of travel between theisolated regions, but ensures that travel along this edge is stronglydiscouraged. Each isolated region is joined in this way to ensure acontinuous graph, but which has regions which are linked by very highweight edges to discourage travel between these regions.

In some implementations, ‘shortcuts’ may be identified to allowtraversal of multiple nodes in fewer steps. Shortcuts are edges linkingnodes which are not nearest neighbours, i.e. which are not adjacent.Creating these shortcuts reduces calculation speed when the graph isqueried, and the resulting graph containing the shortcuts allows optimalroutes to be determined which appear less ‘jerky’ and ‘jagged’, i.e.which appear smoother when plotted in a manner similar to the routesdepicted in FIG. 2.

Shortcuts may be determined, for example, in step 308 and/or step 310shown in FIG. 3, between these two steps, or in processing steps carriedout once the process of FIG. 3 has been carried out. As detailed above,initial calculations link adjacent nodes using the vessel traffic data.Shortcuts can then be created across two or three adjacent nodes. Insome implementations, for each node, the neighbouring nodes and theneighbours of those neighbouring nodes are considered. Considering afirst node, an intermediate node which is adjacent to the first node,and a second node which is adjacent to the intermediate node but notadjacent to the first node, a ‘shortcut’, i.e. a new edge, is createdbetween the first and second node provided that there is an edge betweenboth the first node and the intermediate node and between theintermediate node and the second node. In some implementations there isan extra condition: a shortcut is created provided there is no land masspresent in any of the sub-regions associated with the first,intermediate, or the second nodes. In other words, a shortcut is createdprovided there is clear water between the first and the second node. Theweight of the newly created shortcut edge may be found by simply addingthe weight of the edge which linked the first node and the intermediatenode to the weight of the edge which linked the intermediate node andthe second node.

In some implementations, the weights assigned to edges may be blendedweights, the blended weights being a blend of different weightscalculated using the methods described above, or a blend of weightsobtained using the methods disclosed herein and other factors. Blendedweights may be based on at least two respective types of vessel journeycharacteristic identified using the vessel traffic data. A vesseljourney characteristic may comprise any characteristics discussed hereinor otherwise derivable from vessel traffic data, e.g. the average timetaken to complete the journey, the average speed during the journey, theaverage amount of fuel used during the journey, etc., and may includecharacteristics of the vessel itself, for example weight of the vessel,vessel type, and cargo type. A blended weight can be calculated as aweighted average, e.g. as follows:

w_(b) = I₁w₁ + I₂w₂ + …  I_(N)w_(N)

where w_(b) is the blended weight for a particular edge, I₁ and I₂ areinfluence values, and w₁ and w₂ are weights determined using the actualvessel journeys associated with the edge, as discussed above. Theinfluence values describe how much influence a particular weight has onthe blended weight. The influence values add up to 1, and can be thoughtof as percentages. An arbitrary number ‘N’ of weights can beincorporated into a blended weight.

In an example, a blended weight incorporates a weight w₁ associated withthe average time taken to travel along an edge, a weight w₂ associatedwith the average fuel consumption of vessels travelling along the edge,and a weight w₃ associated with the amount of journeys which wereidentified along the edge. Such a blended weight may be calculated foreach edge of the graph. In some embodiments, before determining anoptimal route, the user can determine how ‘influential’ each of thesefactors should be on the route by adjusting the values of the influencefactors. Using the above example, a user wishing to get to theirdestination as quickly as possible with no regard for fuel usage may setI₂ to zero. A user wishing to ensure their route is ‘well-travelled’ andthus safe would increase the influence of w₃.

In another example, a blended weight may incorporate the degree ofvessel traffic and the average time taken to travel between nodes inorder to allow the determination of a quick route which sticks tocommonly travelled shipping routes. It will therefore be appreciatedthat the blended weights may incorporate at least two weights determinedusing different respective types of vessel journey characteristic.

The blended weight may also incorporate weights and factors notdetermined using vessel traffic data. For example, for edges which passthrough geographical regions containing land, the blended weight mayincorporate a weight based on the ratio of navigable to non-navigablearea in the sub-regions joined by the edge, or in surroundingsub-regions. Such a weight calculated based on the amount ofnon-navigable areas (such as land) in surrounding sub-regions, meansthat the resulting blended weight is increased for edges which pass nearland. This has the effect of discouraging travel along these routes,i.e. to discourage ‘land-hugging’. Similarly, edges which pass throughregions associated with piracy may be increased using a blended weightin order to discourage travel along these regions.

In some implementations, live data may also be incorporated into therepresentation/graph. For example, current weather conditions and/ortidal information can be incorporated into the weighting of the edges.This is useful in situations where a type of weather or othermeteorological phenomena, for example a storm, is known to be heading ina certain direction. The direction and speed of travel of a storm oranother type of weather pattern can be determined using known computermodelling techniques. Using a blended weight which incorporatesmetrological information and/or tidal information means that vessels maybe discouraged from travelling along routes along which the vessel islikely to pass into the storm.

Also, the graph may be regularly updated, and/or re-calculated, usingup-to-date AIS data. For example, the graph may be calculated using AISmessages broadcast in the geographical region over a three month period.To ensure the graph is kept up-to-date, the graph is re-calculated everymonth with the latest month's data included in the three-month. It willbe appreciated that re-calculation of the graph may occur regularly overany time period, for example every day or every week. This ensures thatthe optima routes which are calculated are based on up-to-date vesseltraffic data.

Given the extensive nature of the AIS data, it will be appreciated thatmultiple graphs, nodes, edges and weights may be generated depending ona variety of factors, for example vessel type. For example, it will beappreciated that tankers typically travel along routes different tothose travelled along by fishing vessels due to their size and weight.Thus, vessel data can be incorporated when producing the graph such thatdifferent edges and weights are produced depending on, for example,vessel type, cargo, or weight. In some embodiments, AIS messagesassociated with vessels above a certain weight or size threshold, belowa certain weight or size threshold, or within a certain size/weightrange, can be extracted from the data.

For example, steps 308, 310 and 312 of FIG. 3 may include assigningmultiple edges between nodes. For example, different groups of journeysbetween a first and a second node may be identified, each group ofjourneys being associated with a different vessel type or vesselcharacteristic. For example, a group of journeys between the nodesassociated with fishing vessels is identified, a group of journeysassociated with cargo ships is identified, and a group of journeysassociated with tankers is identified. These groups of journeys may beanalysed, and three different edges, with different associated weights,may be produced in order to link the two nodes. For example, eachdifferent group may have different average speeds and/or differentaverage fuel consumptions, according to the vessel type/characteristicin question. The average fuel consumption of journeys associated withtankers between the two nodes will be larger than the average fuelconsumption of journeys associated with fishing vessels.

In this manner, the representation/graph may incorporate different nodesand edges according to vessel type and/or characteristic. In someimplementations, when an optimal route is to be calculated, a userenters information relating to their vessel type. When calculating theoptimal route, a graph is used having edges and weights relevant to theuser's vessel type. In other words, the graph may comprise a pluralityof edges between a first and a second node, each of the plurality ofedges being calculated/determined based on vessel traffic data relatingto different vessel characteristics. Similarly, the graph may comprisesedges which have been identified as being only suitable for travel bysmaller vessels, e.g. an edge which links two nodes which are near aland mass, or those edges which are associated with travelling along acanal which has a vessel width restriction. These characteristics mayinclude vessel size (height/width), weight, fuel consumption, averagespeed, or any other information relating to vessel characteristics whichmay be obtained from AIS messages. When determining the optimal route,the edges and weights are used which are most relevant to the user'svessel.

In this manner, a graph suitable for determining optimal routes for, forexample, tankers may be produced. When producing a graph suitable forcalculating an optimal route for a tanker, data is discounted which isassociated with, for example, fishing vessels, which may travel closerto land masses than tankers. In this manner, a graph may be producedwhich is suitable for determining an optimal route for a particularvessel type. It will be appreciated that any data contained in a typicalAIS message may be used in order to extract specific types of AISmessages, i.e. data points, to form the basis of the graph, and thus theoptimal route may be tailored to a particular vessel.

In relation to step 310, in an alternative implementation only a singlejourney need be incorporated into the calculation when assigning aweight to an edge. In such an implementation, the AIS messagesassociated with the identified journey which have a location within thefirst geographical sub-region are considered, and the AIS message with alocation nearest the first node is identified. Similarly, the AISmessages associated with the identified journey which have a locationwithin the second geographical sub-region are considered, and the AISmessage with a location nearest the second node is identified. Byconsidering these two respective AIS messages, it is possible to assigna value to the edge which is associated with the time taken by theparticular vessel to travel between the first and the second node.

While reference has been made herein to the term ‘graph’, as the graphrepresents the geographical region the graph may also be referred to asa representation, or a graphical representation. Similarly, while theterm ‘node’ has primarily been used herein, a node may also be referredto as an apex, a vertex, a point of interest, or a junction. While theterm ‘edge’ has been used herein, edges may also be referred to aspaths, arcs or lines.

The methods and approaches described herein may be embodied on acomputer-readable medium, which may be a non-transitorycomputer-readable medium. The computer-readable medium carryingcomputer-readable instructions arranged for execution upon a processorso as to make the processor carry out any or all of the methodsdescribed herein.

The term “computer-readable medium” as used herein refers to any mediumthat stores data and/or instructions for causing a processor to operatein a specific manner Such storage medium may comprise non-volatile mediaand/or volatile media. Non-volatile media may include, for example,optical or magnetic disks. Volatile media may include dynamic memory.Exemplary forms of storage medium include, a floppy disk, a flexibledisk, a hard disk, a solid state drive, a magnetic tape, or any othermagnetic data storage medium, a CD-ROM, any other optical data storagemedium, any physical medium with one or more patterns of holes, a RAM, aPROM, an EPROM, a FLASH-EPROM, NVRAM, and any other memory chip orcartridge.

Unless specifically stated otherwise, as apparent from the followingdiscussion, it is appreciated that throughout the description,discussions utilizing terms such as “receiving”, “determining”,“comparing”, “identifying,” or the like, refer to the actions andprocesses of a computer system, or similar electronic computing device,that manipulates and transforms data represented as physical(electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

The above implementations and arrangements have been described by way ofexample only, and the described implementations and arrangements are tobe considered in all respects only as illustrative and not restrictive.It will be appreciated that variations of the described implementationsand arrangements may be made without departing from the scope of theinvention.

1. A computer-implemented method of determining an optimal route for afirst vessel based on vessel traffic data, the first vessel being of afirst type and/or having first characteristics, the method comprising:electronically receiving vessel traffic data relating to the movement ofeach of a plurality of vessels in a geographical region; electronicallydefining sub-regions within the geographical region in which the vesseltraffic data has similar characteristics; electronically producing arepresentation of the geographical region, the representation comprisingnodes joined by edges, each node being associated with a respectivedefined sub-region, and wherein each edge has a weight calculated basedon characteristics of vessel journeys identified using the vesseltraffic data; and electronically determining an optimal route for avessel between two geographical points using the representation of thegeographical region, the representation comprising nodes and the firsttype and/or the first characteristics of the first vessel.
 2. The methodof claim 1, wherein the weights of each edge are blended weights,wherein each blended weight is calculated based on the characteristicsof vessel journeys identified using the vessel traffic data and based onlive meteorological and/or tidal information.
 3. The method of claim 1,wherein the weights of each edge are blended weights, and wherein eachblended weight is calculated based on the characteristics of vesseljourneys identified using the vessel traffic data and based on theamount of fuel required to travel along the edge.
 4. The method of claim1, further comprising joining neighbouring nodes in the representationwith edges based on vessel journeys identified using the vessel trafficdata.
 5. The method of claim 1, further comprising joining a first and asecond node with a plurality of edges, each respective edge of theplurality of edges being created using different respective vesseljourneys identified using the vessel traffic data, the differentrespective vessel journeys being associated with vessels havingdifferent characteristics.
 6. The method of claim 1, wherein the nodesare connected by edges each having at least one associated weight, theweights being based on characteristics of vessel journeys identifiedusing the vessel traffic data.
 7. The method of claim 6, the at leastone weight being representative of at least one of: the average timetaken to travel along the edge; the average amount of fuel required totravel along the edge; the average amount of monetary cost required totravel along the edge; and the number of journeys identified along theedge in the vessel traffic data.
 8. The method of any of claim 6,wherein the weights are blended weights, wherein each blended weight isbased on at least two respective types of vessel journey identified inthe vessel traffic data, the types of vessel journey being associatedwith different vessel characteristics.
 9. The method of claim 1, whereinthe optimal route is determined using a shortest-path routing algorithm.10. The method of claim 1, wherein defining sub-regions within thegeographical region in which the vessel traffic data has similarcharacteristics comprises identifying geographical regions in whichvariation within the vessel traffic data is below a variation thresholdvalue.
 11. The method of claim 10, further comprising iterativelyconsidering each of a number of proposed sub-regions and, for eachproposed sub-region: determining whether the variation of vessel trafficdata associated with the proposed sub-region is above a thresholdvariation value and, if it is, splitting the proposed sub-region into aplurality of smaller proposed sub-regions.
 12. The method of claim 11,wherein the sub-regions in which the vessel traffic data has similarcharacteristics are defined as those proposed sub-regions in whichvariation of vessel traffic data is not above the threshold variationvalue.
 13. The method of claim 1, wherein the vessel traffic datacomprises data relating to the speeds of each of the plurality ofvessels.
 14. The method of claim 1, wherein defining sub-regions withinthe geographical region in which the current vessel traffic data hassimilar characteristics comprises identifying regions in which variationwithin vessel speed data is below a threshold value.
 15. Acomputer-implemented method of producing a representation of ageographical region for use in determining, based on vessel trafficdata, an optimal route for a vessel between two geographical points, thefirst vessel being of a first type and/or having first characteristics,the method comprising: electronically receiving vessel traffic datarelating to the movement of each of a plurality of vessels in ageographical region; electronically defining sub-regions within thegeographical region in which the vessel traffic data has similarcharacteristics; and electronically producing the representation of thegeographical region, the representation comprising nodes joined byedges, each node being associated with a respective defined sub-region,each edge having a weight, and wherein each weight is calculated basedon characteristics of vessel journeys identified using the vesseltraffic data.
 16. A non-transitory computer readable medium comprisingcomputer-executable instructions which, when executed by a processor,cause the processor to perform a method of producing a representation ofa geographical region for use in determining, based on vessel trafficdata, an optimal route for a vessel between two geographical points, thefirst vessel being of a first type and/or having first characteristics,the method comprising: electronically receiving vessel traffic datarelating to the movement of each of a plurality of vessels in ageographical region; electronically defining sub-regions within thegeographical region in which the vessel traffic data has similarcharacteristics; electronically producing the representation of thegeographical region, the representation comprising nodes joined byedges, each node being associated with a respective defined sub-region,each edge having a weight, and wherein each weight is calculated basedon characteristics of vessel journeys identified using the vesseltraffic data.
 17. The non-transitory computer readable medium of claim15, wherein the computer readable medium further comprises computerexecutable instructions which, when executed by the processor, cause theprocessor to determine an optimal route for the vessel between the twogeographical points using the representation of the geographical region.